package study.datastructure.leetcode.hard;/**
 * @program: datastructure
 * @author: lcy
 * @create: 2024-09-01 15:10
 */

/**
 2024/9/1,
 */

//寻找两个正序数组的中位数
// 给定两个大小分别为 m 和 n 的正序（从小到大）数组 nums1 和 nums2。
// 请你找出并返回这两个正序数组的 中位数 。

class Solution {
    public static double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int m =nums1.length;
        int n=nums2.length;
        int [] nums = new int[m+n];
        double midValue=0;

        //归并暴力排序
        if(m==0){
            if(n%2==0){
                midValue= (double) (nums2[n / 2 - 1] + nums2[n / 2]) /2;
                return midValue;
            }else{
                return nums2[n/2];
            }
        }

        if(n==0){
            if(m%2==0){
                midValue= (double) (nums1[m / 2 - 1] + nums1[m / 2]) /2;
                return midValue;
            }else{
                return nums1[m/2];
            }
        }

        int count=0;
        int i=0;
        int j=0;
        while(count!=m+n){
            if(i==m){
                while(j!=n){
                    nums[count++]=nums2[j++];
                }
                break;
            }
            if(j==n){
                while(i!=m){
                    nums[count++]=nums1[i++];
                }
                break;
            }

            if(nums1[i]>nums2[j]){
                nums[count++]=nums2[j++];
            }else{
                nums[count++]=nums1[i++];
            }

        }

        if(count%2==0){
            midValue= (double) (nums[count / 2 - 1] + nums[count / 2]) /2;
        }else{
            midValue=nums[(count/2)];
        }
        return midValue;
    }

    public static void main(String[] args) {
        int [] nums1={1,3,4};
        int [] nums2={2};
        /*int m =nums1.length;
        int count=4;
        int n=nums2.length;
        int [] nums={1,2,3,4};
        double midValue= (double) (nums[count / 2 - 1] + nums[count / 2]) /2;
        System.out.println(midValue);*/
        System.out.println(findMedianSortedArrays(nums1, nums2));
    }
}